from rest_framework import serializers

from .models import Area


class AreasSerializer(serializers.ModelSerializer):
    """List 行为的序列化器"""

    class Meta:
        # 指定输出的数据的模型类
        model = Area
        # 指定输出的字段
        fields = ("id", "name")

class SubsAreasSerializer(serializers.ModelSerializer):
    """Retreve 行为的序列化器"""

    # 关联,subs和AreasSerializer作关联,关联后输出的是AreasSerializer的验证字段内容.
    subs = AreasSerializer(many=True, read_only=True)

    class Meta:
        # 指定输出的数据的类型
        model = Area
        # 指定输出的字段
        fields = ("id", "name", "subs")
        # subs就是area_set,父级的子节点.
        # 如果id是北京市的id,name就是北京市,subs就是北京市下面所有的区.
        # 如果是一对多的关联,一查多:一对应的模型类对象.关联模型类小写_set
        # eg.b = BookInfo.object.get(id=1)
        #    b.heroinfo_set.all()